pub fn convert_base(input: &str, to_base: u32) -> String {
    // 这里写逻辑
    // todo!()
    if let Some(left_paren_index) = input.find('(') {
        // 提取左括号之前的部分
        let num_str = &input[..left_paren_index];
        // 提取左括号之后的部分，并去掉右括号
        let radix = &input[left_paren_index + 1..input.len() - 1];

        let num: u32 = u32::from_str_radix(num_str, radix.parse().unwrap()).unwrap();
        to_base_string(num, to_base)
    }else{
        panic!("Invalid input format")
    }
}

fn to_base_string(num: u32, base: u32) -> String {
    if base < 2 || base > 36 {
        panic!("Base must be between 2 and 36");
    }

    // if num == 0 {
    //     return "0".to_string();
    // }

    let mut result = String::new();
    let mut n = num;

    while n > 0 {
        let digit = n % base;
        let char_digit = std::char::from_digit(digit as u32, base as u32).unwrap();
        result.push(char_digit);
        n /= base;
    }

    result.chars().rev().collect()
}